package appapi.entity.bridge;

import appapi.common.UpdateGroup;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import java.io.Serializable;
import java.time.LocalDateTime;



@Data
@NoArgsConstructor
@TableName(value = "section")
public class SectionEntity implements Serializable{
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value="工段编号")
    @NotNull(message = "类别ID不能为空", groups = {UpdateGroup.class})
    @TableId(value="sect_id" ,type = IdType.AUTO)
    private Long sectId;


    /**
     * 工段名称
     */
    @TableField(value="sect_name")
    @ApiModelProperty(value="工段名称")
//    @NotNull(message = "工段名称不能为空")
    private String sectName;

    /**
     * 工段编号
     */
    @TableField(value="sect_no")
    @ApiModelProperty(value="工段编号")
    private String sectNo;

    /**
     * 所属项目
     */
    @TableField(value="proj_id")
    @ApiModelProperty(value="所属项目")
    private Long projId;

    /**
     * 工期时间
     */
    @TableField(value="sect_duration")
    @ApiModelProperty(value="工期时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime sectDuration;

    /**
     * 负责人
     */
    @TableField(value="sect_head")
    @ApiModelProperty(value="负责人")
    private String sectHead;

    /**
     * 联系电话
     */
    @TableField(value="sect_tel")
    @ApiModelProperty(value="联系电话")
    @NotNull(message = "手机号码不能为空")
    @NotBlank(message = "手机号码不能为空")
    @Pattern(regexp = "\\d{11}", message = "手机号码必须为11位数字")
    @Length(min = 11,max = 32)
    private String sectTel;

    /**
     * 备注说明
     */
    @TableField(value="sect_note")
    @ApiModelProperty(value="备注说明")
    private String sectNote;

    /**
     * 状态 0启用 1停用
     */
    @TableField(value="sect_status")
    @ApiModelProperty(value="状态")
    private Integer sectStatus;

    /**
     * 创建人
     */
    @TableField(value="create_user")
    @ApiModelProperty(value="创建人")
    private Long createUser;

    /**
     * 创建时间
     */
    @TableField(value="create_time")
    @ApiModelProperty(value = "")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    /**
     * 最后修改人
     */
    @TableField(value="last_modify_user")
    @ApiModelProperty(value="最后修改人")
    private Long lastModifyUser;

    /**
     * 最后修改时间
     */
    @TableField(value="last_modify_time")
    @ApiModelProperty(value="最后修改时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime lastModifyTime;





}

